As is known in the art, conventional natural language systems that attempt to retrieve the most relevant documents from free-form, natural language queries typically rely on some type of keyword indexing in the target documents, or on some form of reference patterns (code representing one or more user inputs, with a specific syntax) associated to each target document. The keyword approach typically has trouble distinguishing relevant documents from documents that happen to share a few words with the user request. In such systems the burden is placed on the end-user to either craft a keyword query, or search through a large number of irrelevant results.
So-called reference pattern approaches can yield better results, but effective reference patterns require contributors that are well-trained in the specific syntax of the system to achieve practical results. Thus, there is a significant burden on the knowledge contributor to program for each response (a document or a scripted answer) a list of patterns accurately representing end-user requests that should trigger this response.